//Variable por ahora se mantiene.
static int volatile iAmarantaTimersCount1,iAmarantaTimersCount2;

//Rutina de inicializacion de la bas de tiempo.
void vAmarantaTimersInit ( unsigned int _tmr1_50ns_base_period, unsigned int _tmr2_50ns_base_period, int flag){
		
	
	//TIMER1
	T1CON=0;
	TMR1=0;
	PR1=_tmr1_50ns_base_period;
	IFS0bits.T1IF=0;
	INTCON1bits.NSTDIS=0;
	IEC0bits.T1IE=1;
	if (flag & 0x1)
		T1CONbits.TON=1;
	
	//TIMER2 
	T2CON	= 0;
	TMR2	= 0;
	PR2	= _tmr2_50ns_base_period;
	IFS0bits.T2IF	= 0;
	IEC0bits.T2IE	= 0;
	if (flag & 0x2)
		T2CONbits.TON=1;
	
	
}
//Rutinas de Interrupci n del timer1: 
void __attribute__((__interrupt__, __shadow__)) _T1Interrupt(void)  // entrada cada 100  Useg. OK
{	
	if(iAmarantaTimersCount1>0) 
		iAmarantaTimersCount1--; 			    // contador para retardos
	
	if(iAmarantaTimersCount2) 
		iAmarantaTimersCount2--; 		     	// contador para retardos DEL ADC
	ADCON1bits.SAMP = 0;	// INICIA LA CONVERSION DEL ADC 
	IFS0bits.T1IF = 0;  				// enable int
}

/*RUTINA DE INTERRUPCION DEL TIMER*/
void __attribute__((__interrupt__)) _T2Interrupt( void )
{
	IFS0bits.T2IF		= 0;       		/* LIMPIA LA BANDERA DE INTERRUPCION DEL TIMER 2 */
	ADCON1bits.ADON 	= 1;        		/* INICIA EL MODULO ADC */
	ADCON1bits.SAMP 	= 1; 			/* INICIO MUESTRO DE LAS SE ALES */
	iAmarantaTimersCount2	= 1; 			/* TIEMPO DE ESPERA PARA EL MUESTREO DE LA SE AL ANALOGA 100useg */
}	


